#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :python_django.py
# @Time      :2025/2/18 17:36
# @Author    :kk

# pip install django==4.1
# 安装4.1是支持mysql5.7的最高版本
#
# - python.exe
# - Scripts
#     - pip.exe
#     - django-admin.exe [工具 创建django项目]
# - Lib
#     - 内置模块
#     - site-packages
#         - openpyxl
#         - python-docx
#         - flask
#         - django
# 创建项目
# django-admin startproject myproject
#
# myproject
# -- manage.py        # 项目管理，启动项目，创建app，数据管理
# -- myproject
#     -- __init__.py
#     -- settings.py  # 项目配置文件
#     -- urls.py      # URL和函数的对应关系
#     -- asgi.py      # 接收网络请求
#     -- wsgi.py      # 接收网络请求
# -- app
#    -- __init__.py
#    -- admin.py      # django 默认提供了admin后台管理
#    -- apps.py       # app启动类
#    -- migrations    # 数据库变更记录
#       -- __init__.py
#    -- models.py     # 对数据库的映射关系
#    -- tests.py      # 测试用例
#    -- views.py      # 函数
# -项目
#    - app,用户管理    # 独立的表结构，函数、HTML模版、CSS
#    - app,商品管理
#    - app,订单管理
#    - app,API

# 创建app
# 运行项目 python  manage.py startapp appname
# 在settings.py中注册app   INSTALLED_APPS 加入 app01.apps.App01Config

# 编写url与视图的对应关系
# 在 myproject/urls.py 中注册 app01.urls,在urlpatterns中添加path("index/", views.index)

# 编写视图函数 views.py
# def index(request):
#     return HttpResponse("Hello World")

# 运行django
# python manage.py runserver

# templates
# 创建app01/templates/app01/index.html  views中返回render(request, "index.html")

# 静态文件 在页面中引入  {% load static %}
# {% static "css/index.css" %}


# 请求与响应 403
#在提交分form 表单中 加入 {% csrf_token %}

# ORM框架
# pip install mysqlclient
# 创建、修改、删除数据库表

# 在settings.py中配置DATABASES
# python manage.py makemigrations
# python manage.py migrate
# 创建管理员
# python manage.py createsuperuser

# ObjectModel.objects.create(name="张三")
# ObjectModel.objects.all()
# ObjectModel.objects.filter(name="张三")
# ObjectModel.objects.filter(name="张三").delete()
# ObjectModel.objects.filter(name="张三").first()
# ObjectModel.objects.filter(name="张三").update(age=18)

# 表关联 depart 在数据库字段中添加 depart_id ,
# on_delete=models.CASCADE 级联删除,
# depart = models.ForeignKey(to="Depart", to_field="id", on_delete=models.CASCADE)
# 置空
# depart = models.ForeignKey(to="Depart", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)

# 在django中的约束
# gender_choice = (
#     (1, "男"),
#     (2, "女")
# )
# gender = models.smallIntegerField(verbose_name="性别", choices=gender_choice)
# 取数据库时 obj.gender #值为1/2
# obj.get_gender_display() #值是男/女

#Form
#modelForm # 模型表单

# 输出对象的时候，如果想要定制显示内容，则自定义 def __str__(self)





# drf 框架
# pip install django-rest-framework
# pip install djangorestframework
